#ifndef _SHADER_BINDING_STATE_H_
#define _SHADER_BINDING_STATE_H_
#include "PCH.h"
namespace DeviousRenderer
{
	class ShaderBindingState
	{
	public:
		ShaderBindingState();
		virtual ~ShaderBindingState();

		int			GetShaderIndex() { return m_ShaderIndex; }

	protected:
		D3D_FEATURE_LEVEL			m_FeatureLevel;
		int							m_ShaderIndex;
		ID3D11Buffer*				m_ConstantBuffer[D3D11_COMMONSHADER_CONSTANT_BUFFER_API_SLOT_COUNT];
		ID3D11SamplerState*			m_SamplerState[D3D11_COMMONSHADER_SAMPLER_SLOT_COUNT];
		ID3D11ShaderResourceView*	m_ShaderResourceView[D3D11_COMMONSHADER_INPUT_RESOURCE_SLOT_COUNT];
		ID3D11UnorderedAccessView*	m_UnorderedAccessViews[D3D11_PS_CS_UAV_REGISTER_COUNT];
		unsigned int				m_UAVInitCounts[D3D11_PS_CS_UAV_REGISTER_COUNT];
	};
}
#endif//_SHADER_BINDING_STATE_H_